Formalizing Deterministic Semantics of Declarative Programming Languages
نویسندگان
چکیده
Although every implementation of a (functional) logic programming language is deterministic, the languages' semantics are almost always formalized as a \nondeterministic" binary relation. Hence, there still exists a gap between the semantics of a (functional) logic programming language and its implementation which has to be closed in particular if the correctness of the implementation is to be veriied. For closing this gap we introduce a calculus in which almost every nondeterministic semantics of a (functional) logic programming language can be formalized in a unique way. The main advantage of this calculus is the straightforward implication of the deterministic semantics from the nondeterministic one.
منابع مشابه
Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملAn Operational Semantics for Declarative Multi - Paradigm Languages ? Elvira Albert
Practical declarative multi-paradigm languages combine the main features of functional, logic and concurrent programming (e.g., laziness, sharing, higher-order, logic variables, non-determinism, search strategies). Usually, these languages also include interfaces to external functions as well as to constraint solvers. In this work, we introduce the first formal description of an operational sem...
متن کاملOperational semantics for declarative multi-paradigm languages
Declarative multi-paradigm languages combine the most important features of functional, logic and concurrent programming. The computational model of such integrated languages is usually based on a combination of two different operational principles: narrowing and residuation. This work is motivated by the fact that a precise definition of an operational semantics including all aspects of modern...
متن کاملUpdates by Reasoning about States Updates by Reasoning about States *
We present a language extension to Datalog which allows to specify deterministic update procedures in a declarative way. Existing update languages either rely on procedural aspects of program evaluation or leave the framework of deductive databases and logic programming. In contrast, we show that declarative update semantics can be attained by incorporating state terms into the language. Since ...
متن کاملDeclarative Debugging for Encapsulated Search
Declarative debugging has been proposed as a suitable technique for developing debuggers in the context of declarative languages. However, to become really useful debuggers must be able to deal with those parts of the languages that have no clear declarative semantics but are widely used in realistic programs. We explain in this paper how a declarative debugger of wrong answers for the lazy fun...
متن کامل